In the field of embedded systems, systems are sometimes required to exhibit a high level of reliability and fault tolerance. A high level of reliability and fault tolerance is typically achieved through the use of redundant processing techniques. For example, a redundant processor may provide continuous verification of a main processor and may be included to achieve a high level of reliability and fault tolerance of the system. In such a case, it is important that the redundant processor be truly independent and unable to affect the output of the main processor, or else the redundant processor will need verification itself. In many cases, the redundant processor is a device that is specifically designed to perform error detection.
Having two processors is effective, but has the disadvantage of requiring additional physical components. Having additional physical components often increases the cost and design difficulty. Further, having two processors may not be easily adaptable to new applications, since the redundant processor may need to be redesigned each time new functionality is added.
Despite these disadvantages, many solutions utilize two general purpose microprocessors and many solutions place two microprocessor cores on a single Integrated Circuit (IC). One typical design is a single IC with two microprocessor cores where each processor has its own system bus, memories and embedded peripherals. A second typical design is a single IC with two microprocessor cores, a shared system bus, memories and peripherals, where both microprocessor cores are allowed access to the memories and peripherals. Both of these typical designs have drawbacks, such as those mentioned above. In any case, existing typical designs are not suitable for systems that require a high level of reliability and fault tolerance.
Thus, there is a need for a single IC capable of adapting to a wide range of uses without complete duplication of all system memories and peripherals while still having the ability to partition the system to create a main processing device and independent verifier.
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention.